package jpa.entitys.promis.construction;

import java.io.Serializable;

import javax.persistence.*;

import java.math.BigDecimal;
import java.util.Date;

import jpa.entitys.common.CommonEntity;


/**
 * The persistent class for the PROJECT_ACCOUNT_COST database table.
 * 
 */
@Entity
@Table(name="PROJECT_ACCOUNT_COST")
@NamedQueries({
    @NamedQuery(name = "ProjectAccountCost.findAll", query = " SELECT c FROM ProjectAccountCost c "),
    @NamedQuery(name = "ProjectAccountCost.findById", query = " SELECT c FROM ProjectAccountCost c WHERE c.id = :Id "),
    @NamedQuery(name = "ProjectAccountCost.findBySapLivDocNo", query = " SELECT c FROM ProjectAccountCost c WHERE c.id.company = :company And c.id.project = :project And c.syncExternalRefNo = :syncExternalRefNo And c.status = :status "),
    @NamedQuery(name = "ProjectAccountCost.findByStaging", query = " SELECT c FROM ProjectAccountCost c WHERE c.syncIsstaging = :syncIsstaging")
})
public class ProjectAccountCost extends CommonEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	@EmbeddedId
	private ProjectAccountCostPK id;

	@Override public String toString() { return org.apache.commons.lang.builder.ToStringBuilder.reflectionToString(this);}
	
	@Column(name="ACCOUNT_CODE")
	private String accountCode;

	@Column(name="BUILDING_PHASE")
	private String buildingPhase;

	@Column(name="CONSTRUCTION_BUDGET")
	private BigDecimal constructionBudget;

	@Column(name="CONSTRUCTION_COST")
	private BigDecimal constructionCost;

	@Column(name="COST_BF_VAT")
	private BigDecimal costBfVat;

	@Column(name="CREATED_BY")
	private String createdBy;

    @Temporal( TemporalType.TIMESTAMP)
	@Column(name="CREATED_ON")
	private Date createdOn;

	@Column(name="GRN_NO")
	private BigDecimal grnNo;

	@Column(name="GRN_SEQ_NO")
	private BigDecimal grnSeqNo;

	@Column(name="GRN_SERIES")
	private String grnSeries;

	@Column(name="GRN_TYPE")
	private String grnType;

	@Column(name="ITEM_CODE")
	private String itemCode;

	@Column(name="LAST_UPD_BY")
	private String lastUpdBy;

    @Temporal( TemporalType.TIMESTAMP)
	@Column(name="LAST_UPD_ON")
	private Date lastUpdOn;

	@Column(name="PO_NO")
	private BigDecimal poNo;

	@Column(name="PO_REVISION")
	private BigDecimal poRevision;

	@Column(name="PO_SEQ")
	private BigDecimal poSeq;

	@Column(name="PO_SERIES")
	private String poSeries;

	@Column(name="PO_TYPE")
	private String poType;

	@Column(name="PROMOTION_BUDGET")
	private BigDecimal promotionBudget;

	@Column(name="PROMOTION_COST")
	private BigDecimal promotionCost;

	private BigDecimal quantity;

	@Column(name="SERVICES_BUDGET")
	private BigDecimal servicesBudget;

	@Column(name="SERVICES_COST")
	private BigDecimal servicesCost;

	private String status;

	@Column(name="SUB_ACCOUNT_CODE")
	private String subAccountCode;

	@Column(name="SYNC_CREATEDBY")
	private String syncCreatedby;

    @Temporal( TemporalType.TIMESTAMP)
	@Column(name="SYNC_CREATEDON")
	private Date syncCreatedon;

	@Column(name="SYNC_EXTERNAL_REF_KEY")
	private String syncExternalRefKey;

	@Column(name="SYNC_EXTERNAL_REF_NO")
	private String syncExternalRefNo;

	@Column(name="SYNC_ISSTAGING")
	private String syncIsstaging;

	@Column(name="SYNC_ISSYNC")
	private String syncIssync;

	@Column(name="SYNC_UPDATEDBY")
	private String syncUpdatedby;

    @Temporal( TemporalType.TIMESTAMP)
	@Column(name="SYNC_UPDATEDON")
	private Date syncUpdatedon;

	@Column(name="TOTAL_BUDGET")
	private BigDecimal totalBudget;

	@Column(name="TOTAL_COST")
	private BigDecimal totalCost;

	@Column(name="UNIT_NUMBER")
	private String unitNumber;

    @Temporal( TemporalType.TIMESTAMP)
	@Column(name="VOUCHER_DATE")
	private Date voucherDate;

	@Column(name="ZONE_CODE")
	private String zoneCode;

    public ProjectAccountCost() {
    }

	public ProjectAccountCostPK getId() {
		return this.id;
	}

	public void setId(ProjectAccountCostPK id) {
		this.id = id;
	}
	
	public String getAccountCode() {
		return this.accountCode;
	}

	public void setAccountCode(String accountCode) {
		this.accountCode = accountCode;
	}

	public String getBuildingPhase() {
		return this.buildingPhase;
	}

	public void setBuildingPhase(String buildingPhase) {
		this.buildingPhase = buildingPhase;
	}

	public BigDecimal getConstructionBudget() {
		return this.constructionBudget;
	}

	public void setConstructionBudget(BigDecimal constructionBudget) {
		this.constructionBudget = constructionBudget;
	}

	public BigDecimal getConstructionCost() {
		return this.constructionCost;
	}

	public void setConstructionCost(BigDecimal constructionCost) {
		this.constructionCost = constructionCost;
	}

	public BigDecimal getCostBfVat() {
		return this.costBfVat;
	}

	public void setCostBfVat(BigDecimal costBfVat) {
		this.costBfVat = costBfVat;
	}

	public String getCreatedBy() {
		return this.createdBy;
	}

	public void setCreatedBy(String createdBy) {
		this.createdBy = createdBy;
	}

	public Date getCreatedOn() {
		return this.createdOn;
	}

	public void setCreatedOn(Date createdOn) {
		this.createdOn = createdOn;
	}

	public BigDecimal getGrnNo() {
		return this.grnNo;
	}

	public void setGrnNo(BigDecimal grnNo) {
		this.grnNo = grnNo;
	}

	public BigDecimal getGrnSeqNo() {
		return this.grnSeqNo;
	}

	public void setGrnSeqNo(BigDecimal grnSeqNo) {
		this.grnSeqNo = grnSeqNo;
	}

	public String getGrnSeries() {
		return this.grnSeries;
	}

	public void setGrnSeries(String grnSeries) {
		this.grnSeries = grnSeries;
	}

	public String getGrnType() {
		return this.grnType;
	}

	public void setGrnType(String grnType) {
		this.grnType = grnType;
	}

	public String getItemCode() {
		return this.itemCode;
	}

	public void setItemCode(String itemCode) {
		this.itemCode = itemCode;
	}

	public String getLastUpdBy() {
		return this.lastUpdBy;
	}

	public void setLastUpdBy(String lastUpdBy) {
		this.lastUpdBy = lastUpdBy;
	}

	public Date getLastUpdOn() {
		return this.lastUpdOn;
	}

	public void setLastUpdOn(Date lastUpdOn) {
		this.lastUpdOn = lastUpdOn;
	}

	public BigDecimal getPoNo() {
		return this.poNo;
	}

	public void setPoNo(BigDecimal poNo) {
		this.poNo = poNo;
	}

	public BigDecimal getPoRevision() {
		return this.poRevision;
	}

	public void setPoRevision(BigDecimal poRevision) {
		this.poRevision = poRevision;
	}

	public BigDecimal getPoSeq() {
		return this.poSeq;
	}

	public void setPoSeq(BigDecimal poSeq) {
		this.poSeq = poSeq;
	}

	public String getPoSeries() {
		return this.poSeries;
	}

	public void setPoSeries(String poSeries) {
		this.poSeries = poSeries;
	}

	public String getPoType() {
		return this.poType;
	}

	public void setPoType(String poType) {
		this.poType = poType;
	}

	public BigDecimal getPromotionBudget() {
		return this.promotionBudget;
	}

	public void setPromotionBudget(BigDecimal promotionBudget) {
		this.promotionBudget = promotionBudget;
	}

	public BigDecimal getPromotionCost() {
		return this.promotionCost;
	}

	public void setPromotionCost(BigDecimal promotionCost) {
		this.promotionCost = promotionCost;
	}

	public BigDecimal getQuantity() {
		return this.quantity;
	}

	public void setQuantity(BigDecimal quantity) {
		this.quantity = quantity;
	}

	public BigDecimal getServicesBudget() {
		return this.servicesBudget;
	}

	public void setServicesBudget(BigDecimal servicesBudget) {
		this.servicesBudget = servicesBudget;
	}

	public BigDecimal getServicesCost() {
		return this.servicesCost;
	}

	public void setServicesCost(BigDecimal servicesCost) {
		this.servicesCost = servicesCost;
	}

	public String getStatus() {
		return this.status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	public String getSubAccountCode() {
		return this.subAccountCode;
	}

	public void setSubAccountCode(String subAccountCode) {
		this.subAccountCode = subAccountCode;
	}

	public String getSyncCreatedby() {
		return this.syncCreatedby;
	}

	public void setSyncCreatedby(String syncCreatedby) {
		this.syncCreatedby = syncCreatedby;
	}

	public Date getSyncCreatedon() {
		return this.syncCreatedon;
	}

	public void setSyncCreatedon(Date syncCreatedon) {
		this.syncCreatedon = syncCreatedon;
	}

	public String getSyncExternalRefKey() {
		return this.syncExternalRefKey;
	}

	public void setSyncExternalRefKey(String syncExternalRefKey) {
		this.syncExternalRefKey = syncExternalRefKey;
	}

	public String getSyncExternalRefNo() {
		return this.syncExternalRefNo;
	}

	public void setSyncExternalRefNo(String syncExternalRefNo) {
		this.syncExternalRefNo = syncExternalRefNo;
	}

	public String getSyncIsstaging() {
		return this.syncIsstaging;
	}

	public void setSyncIsstaging(String syncIsstaging) {
		this.syncIsstaging = syncIsstaging;
	}

	public String getSyncIssync() {
		return this.syncIssync;
	}

	public void setSyncIssync(String syncIssync) {
		this.syncIssync = syncIssync;
	}

	public String getSyncUpdatedby() {
		return this.syncUpdatedby;
	}

	public void setSyncUpdatedby(String syncUpdatedby) {
		this.syncUpdatedby = syncUpdatedby;
	}

	public Date getSyncUpdatedon() {
		return this.syncUpdatedon;
	}

	public void setSyncUpdatedon(Date syncUpdatedon) {
		this.syncUpdatedon = syncUpdatedon;
	}

	public BigDecimal getTotalBudget() {
		return this.totalBudget;
	}

	public void setTotalBudget(BigDecimal totalBudget) {
		this.totalBudget = totalBudget;
	}

	public BigDecimal getTotalCost() {
		return this.totalCost;
	}

	public void setTotalCost(BigDecimal totalCost) {
		this.totalCost = totalCost;
	}

	public String getUnitNumber() {
		return this.unitNumber;
	}

	public void setUnitNumber(String unitNumber) {
		this.unitNumber = unitNumber;
	}

	public Date getVoucherDate() {
		return this.voucherDate;
	}

	public void setVoucherDate(Date voucherDate) {
		this.voucherDate = voucherDate;
	}

	public String getZoneCode() {
		return this.zoneCode;
	}

	public void setZoneCode(String zoneCode) {
		this.zoneCode = zoneCode;
	}

}